      * GRUPO 01 DE ALGORITMOS Y PROGRAMACION IV (7527).
      * FACULTAD DE INGENIERIA DE LA UNIVERSIDAD DE BUENOS AIRES.

      * ARCHIVO PARA TODAS LAS DEFINICIONES

       IDENTIFICATION DIVISION.
       PROGRAM-ID. TP-PART2.
        AUTHOR. BASUALDO - CUEVAS - MONTES - ROMERO.

      * ---------------------------------------------------------------

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

      * ---------------------------------------------------------------
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT MAESTRO          ASSIGN TO 'C:\MAESTRO2.DAT'
                    ORGANIZATION IS LINE SEQUENTIAL
                    FILE STATUS IS WSS-FS-MAESTRO.


           SELECT ESTCLIENTE       ASSIGN TO 'C:\ECL.DAT'
                    ORGANIZATION IS INDEXED
                    ACCESS MODE IS DYNAMIC
                    RECORD KEY IS ECL-CLAVE
                    FILE STATUS IS WSS-FS-ESTCLIENTE.

           SELECT ARCH-TRABAJO     ASSIGN TO 'TRABAJO'.


           SELECT REPORTES         ASSIGN TO 'C:\REPORTE.DAT'
                                   FILE STATUS IS WSS-FS-REPORTES.
      * ---------------------------------------------------------------
       DATA DIVISION.
       FILE SECTION.

       FD MAESTRO              DATA RECORD IS MAE
                                 LABEL RECORD IS STANDARD.
       01 MAE.
          05 MAE-CLAVE.
               10 MAE-COD-RES       PIC 9(6).
               10 MAE-DIGITO        PIC 9.
          05 MAE-FECHA-DES.
               10 MAE-ANIO-DES      PIC X(4).
               10 FILLER            PIC X.
               10 MAE-MES-DES       PIC X(2).
               10 FILLER            PIC X.
               10 MAE-DIA-DES       PIC X(2).
          05 MAE-FECHA-HAS.
               10 MAE-ANIO-HAS      PIC X(4).
               10 FILLER            PIC X.
               10 MAE-MES-HAS       PIC X(2).
               10 FILLER            PIC X.
               10 MAE-DIA-HAS       PIC X(2).
          05 MAE-CATEG-HAB          PIC 9(4).
          05 MAE-DATOS-PERS.
               10 MAE-NOMBRE-CLI    PIC X(30).
               10 MAE-TEL           PIC X(15).
               10 MAE-DIR           PIC X(30).
          05 MAE-IMP                PIC S9(06)V99.
          05 MAE-ESTADO             PIC X.


       FD ESTCLIENTE           DATA RECORD IS ECL
                                 LABEL RECORD IS STANDARD.
       01 ECL.
          05 ECL-CLAVE.
               10 ECL-COD-CLI       PIC 9(8).
               10 ECL-NRO-SEC       PIC 9(4).
          05 ECL-FECHA-DES.
               10 ECL-ANIO-DES      PIC X(4).
               10 FILLER            PIC X.
               10 ECL-MES-DES       PIC X(2).
               10 FILLER            PIC X.
               10 ECL-DIA-DES       PIC X(2).
          05 ECL-FECHA-HAS.
               10 ECL-ANIO-HAS      PIC X(4).
               10 FILLER            PIC X.
               10 ECL-MES-HAS       PIC X(2).
               10 FILLER            PIC X.
               10 ECL-DIA-HAS       PIC X(2).
          05 ECL-CATEG-HAB          PIC 9(4).
          05 ECL-IMPORTE            PIC S9(06)V99.


       SD ARCH-TRABAJO        DATA RECORD IS TRAB.

       01 TRAB.
          05 TRAB-NOMBRE-CLI        PIC X(30).
          05 TRAB-NRO-SEC           PIC 9(04).
          05 TRAB-DIR               PIC X(30).
          05 TRAB-TEL               PIC X(15).
          05 TRAB-FECHA-DES.
               10 ECL-ANIO-DES      PIC X(4).
               10 FILLER            PIC X.
               10 ECL-MES-DES       PIC X(2).
               10 FILLER            PIC X.
               10 ECL-DIA-DES       PIC X(2).
          05 TRAB-FECHA-HAS.
               10 ECL-ANIO-HAS      PIC X(4).
               10 FILLER            PIC X.
               10 ECL-MES-HAS       PIC X(2).
               10 FILLER            PIC X.
               10 ECL-DIA-HAS       PIC X(2).
          05 TRAB-CATEG-HAB     PIC 9(04).
          05 TRAB-IMP-RES         PIC S9(06)V99.

         FD REPORTES               DATA RECORD IS REGISTRO-REPORTE.
       01 REGISTRO-REPORTE               PIC X(80).

      * -------------------------------------------------------------- *

        WORKING-STORAGE SECTION.

      * ------------------------- CONSTANTES ------------------------- *
       01 FECHA.                   
          05 ANIO                   PIC 9(02).
          05 MES                    PIC 9(02).
          05 DIA                    PIC 9(02).

      * ------------------------- VARIABLES -------------------------- *
       01 VARIABLES.
          05 WSV-COD-OP-SUBPGM        PIC X(06) VALUE SPACES.
          05 WSV-COD-RET              PIC X(06) VALUE SPACES.
             88 WSV-COD-RET-OK      VALUE 'OK'.
             88 WSV-COD-RET-NO-ENC  VALUE 'NO-ENC'.
          05 WSV-NOMBRE-CLI-ANT       PIC X(30).
          05 WSV-LEIDOS-MAE           PIC 9(04) VALUE 0.
          05 WSV-LEIDOS-TRAB          PIC 9(04) VALUE 0.
          05 WSV-NUM-LINEA            PIC 9(02).
          05 WSV-NUM-PAGINA           PIC 9(03).
          05 WSV-IMPORTE-TOTAL        PIC 9(08)V99.
          
          05 WSV-ENCAB-HOJA.
             10 WSV-ENCAB-HOJA-LINEA-UNO.
                15 FILLER             PIC X(07) VALUE 'Fecha: '.
                15 WSV-FECHA-ACTUAL.
                  20  FILLER          PIC X(02) VALUE '20'.
                  20  ANIO-ACTUAL     PIC X(02).
                  20  FILLER          PIC X(01) VALUE '/'.
                  20  MES-ACTUAL      PIC X(02).
                  20  FILLER          PIC X(01) VALUE '/'.
                  20  DIA-ACTUAL      PIC X(02).
                15 FILLER             PIC X(51) VALUE SPACES.
                15 FILLER             PIC X(10) VALUE 'Hoja nro: '.
                15 WSV-ENCAB-HOJA-NUM PIC 99.
             10 WSV-ENCAB-HOJA-LINEA-DOS PIC X(80) VALUE SPACES.
             10 WSV-ENCAB-HOJA-LINEA-TRES.
                15 FILLER     PIC X(28) VALUE SPACES.
                15 FILLER     PIC X(23) VALUE 'LISTADO DE ESTADISTICAS'.
                15 FILLER     PIC X(29) VALUE SPACES.
          05 WSV-ENCAB-CLI.
             10 WSV-ENCAB-CLI-LINEA-UNO PIC X(80) VALUE SPACES.
             10 WSV-ENCAB-CLI-LINEA-DOS.
                15 FILLER        PIC X(16) VALUE 'Nombre Cliente: '.
                15 WSV-ENCAB-CLI-NOMBRE        PIC X(30).
                15 FILLER        PIC X(34) VALUE SPACES.
             10 WSV-ENCAB-CLI-LINEA-TRES.
                15 FILLER        PIC X(11) VALUE 'Direccion: '.
                15 WSV-ENCAB-CLI-DIR        PIC X(30).
                15 FILLER        PIC X(39) VALUE SPACES.
             10 WSV-ENCAB-CLI-LINEA-CUATRO.
                15 FILLER        PIC X(05) VALUE 'Tel: '.
                15 WSV-ENCAB-CLI-TEL        PIC X(15).
                15 FILLER        PIC X(50) VALUE SPACES.
             10 WSV-ENCAB-CLI-LINEA-CINCO.
                15 FILLER        PIC X(10) VALUE SPACES.
                15 FILLER        PIC X(11) VALUE 'Fecha Desde'.
                15 FILLER        PIC X(05) VALUE SPACES.
                15 FILLER        PIC X(11) VALUE 'Fecha Hasta'.
                15 FILLER        PIC X(05) VALUE SPACES.
                15 FILLER        PIC X(09) VALUE 'Categ Hab'.
                15 FILLER        PIC X(05) VALUE SPACES.
                15 FILLER        PIC X(07) VALUE 'Importe'.
                15 FILLER        PIC X(17) VALUE SPACES.

          05 WSV-LINEA-CLIENTE.
             10 FILLER                   PIC X(10) VALUE SPACES.
             10 WSV-LINEA-CLI-FEC-DES    PIC X(10).
             10 FILLER                   PIC X(06) VALUE SPACES.
             10 WSV-LINEA-CLI-FEC-HAS    PIC X(10).
             10 FILLER                   PIC X(06) VALUE SPACES.
             10 WSV-LINEA-CLI-CAT-HAB    PIC X(04).
             10 FILLER                   PIC X(10) VALUE SPACES.
             10 WSV-LINEA-CLI-IMP        PIC $ZZ.ZZ9,99.
             10 FILLER                   PIC X(16) VALUE SPACES.

          05 WSV-LINEA-IMPORTE-TOTAL.
             10 FILLER             PIC X(15) VALUE 'Importe Total: '.
             10 WSV-LINEA-IMP      PIC $ZZZ.ZZ9,99.
             10 FILLER             PIC X(54).
 
          05 WSV-NRO-SEC-ANT           PIC 9(04).
      * ------------------------- INDICES ---------------------------- *

      * ------------------------- SWHITCHES -------------------------- *
       01 SWHITCHES.
          05 WSS-FS-MAESTRO              PIC X(2).
               88 WSS-FS-MAESTRO-OK      VALUE '00'.
               88 WSS-FS-MAESTRO-EOF     VALUE '10'.
          05 WSS-FS-ESTCLIENTE           PIC X(2).
               88 WSS-FS-ESTCLIENTE-OK   VALUE '00'.
               88 WSS-FS-ESTCLIENTE-EOF  VALUE '10'.
          05 WSS-FS-TRABAJO              PIC X(2).
               88 WSS-FS-TRABAJO-OK      VALUE '00'.
               88 WSS-FS-TRABAJO-EOF     VALUE '10'.
          05 WSS-FS-REPORTES             PIC X(02).
               88 WSS-FS-REP-OK          VALUE '00'.
               88 WSS-FS-REP-EOF         VALUE '10'.

      * ------------------------- REGISTROS -------------------------- *      
       01 WS-REG-CLI.
          05 WS-CLI-COD                  PIC 9(08).
          05 WS-CLI-NOMBRE               PIC X(30).
          05 WS-CLI-DIRECCION            PIC X(30).
          05 WS-CLI-TELEFONO             PIC X(15).
          05 WS-CLI-FECHA-NAC            PIC X(10).
          05 WS-CLI-OCUPACION            PIC X(20).

      * -------------------------------------------------------------- *
        PROCEDURE DIVISION.
        GENERAL.
           SORT ARCH-TRABAJO
               ON ASCENDING KEY TRAB-NOMBRE-CLI
               ON ASCENDING KEY TRAB-NRO-SEC
               INPUT PROCEDURE IS ENTRADA
               OUTPUT PROCEDURE IS SALIDA.
           STOP RUN.

      ************************* ENTRADA ********************************
       ENTRADA.
           PERFORM ABRIR-ARCHIVOS-ENTRADA.
           PERFORM LEO-MAE.
           PERFORM PROCESO-ECL-EXISTENTES.
           PERFORM PROCESAR-RESERVAS UNTIL WSS-FS-MAESTRO-EOF.
           PERFORM CERRAR-ARCHIVOS-ENTRADA.
 
      ********************** ABRIR-ARCHIVOS-ENTRADA ********************
        ABRIR-ARCHIVOS-ENTRADA.
           PERFORM ABRIR-MAESTRO.
           PERFORM ABRIR-ECL.
           MOVE 'ABRIR' TO WSV-COD-OP-SUBPGM.
           CALL 'SUBPGM' USING 
           WSV-COD-OP-SUBPGM, WS-REG-CLI, WSV-COD-RET.

      ********************** ABRIR-MAESTRO *****************************
       ABRIR-MAESTRO.
           OPEN INPUT MAESTRO
           IF WSS-FS-MAESTRO NOT = '00'
               DISPLAY 'ERROR EN OPEN MAESTRO. FS: ' WSS-FS-MAESTRO
           END-IF.

      ********************** ABRIR-ECL *********************************
       ABRIR-ECL.
           OPEN I-O ESTCLIENTE
           IF WSS-FS-ESTCLIENTE NOT = '00'
              DISPLAY 'ERROR EN OPEN ESTCLIENTE. FS: ' WSS-FS-ESTCLIENTE
           END-IF.

      *********************** LEO-MAE **********************************
       LEO-MAE.
           READ MAESTRO
               AT END SET WSS-FS-MAESTRO-EOF TO TRUE.
           EVALUATE TRUE
               WHEN WSS-FS-MAESTRO-OK
               ADD 1 TO WSV-LEIDOS-MAE
               WHEN WSS-FS-MAESTRO-EOF
           IF WSV-LEIDOS-MAE EQUAL ZEROES
               DISPLAY 'ARCHIVO MAE VACIO'
           END-IF
           WHEN OTHER
               DISPLAY 'ERROR LECTURA MAE. FS: ' WSS-FS-MAESTRO
           END-EVALUATE.

      *********************** PROCESO-ECL-EXISTENTES *******************
       PROCESO-ECL-EXISTENTES.
           MOVE 00000000 TO ECL-COD-CLI
           MOVE 0000     TO ECL-NRO-SEC
           START ESTCLIENTE KEY IS >= ECL-CLAVE
           READ ESTCLIENTE NEXT
               AT END PERFORM SET-EOF
           END-READ
           PERFORM LEER-ECL-EXISTENTE UNTIL WSS-FS-ESTCLIENTE-EOF.

      *********************** LEER-ECL-EXISTENTE ***********************
       LEER-ECL-EXISTENTE. 
           MOVE 'LEER C' TO WSV-COD-OP-SUBPGM
           MOVE ECL-COD-CLI TO WS-CLI-COD
           CALL 'SUBPGM' USING 
           WSV-COD-OP-SUBPGM, WS-REG-CLI, WSV-COD-RET.
           PERFORM GRABAR-TRABAJO-ECL.
           READ ESTCLIENTE NEXT
               AT END PERFORM SET-EOF
           END-READ.

      ********************** PROCESAR-RESERVAS *************************
       PROCESAR-RESERVAS.
           PERFORM PROCESAR-RESERVA-ACEPTADA.
           PERFORM LEO-MAE.

      ********************** PROCESAR-RESERVA-ACEPTADA *****************
       PROCESAR-RESERVA-ACEPTADA.
           IF MAE-ESTADO = 'A'
               MOVE 'LEER N' TO WSV-COD-OP-SUBPGM
               MOVE MAE-NOMBRE-CLI TO WS-CLI-NOMBRE
               CALL 'SUBPGM' USING 
               WSV-COD-OP-SUBPGM, WS-REG-CLI, WSV-COD-RET
               PERFORM VEO-COD-RET
           END-IF.

      ********************** CERRAR-ARCHIVOS-ENTRADA *******************
       CERRAR-ARCHIVOS-ENTRADA.
           CLOSE MAESTRO.
           CLOSE ESTCLIENTE.
           MOVE 'CERRAR' TO WSV-COD-OP-SUBPGM.
           CALL 'SUBPGM' USING 
           WSV-COD-OP-SUBPGM, WS-REG-CLI, WSV-COD-RET.

      ********************  VEO-COD-RET  *******************************
       VEO-COD-RET.
           IF WSV-COD-RET-OK
           PERFORM AGREGAR-CLIENTE
           ELSE
               IF WSV-COD-RET-NO-ENC
                   DISPLAY 'CLIENTE NO ENCONTRADO'
               ELSE
                   DISPLAY 'ERROR AL LEER CLIENTE'
               END-IF
           END-IF.

      *********************  AGREGAR CLIENTE  **************************
       AGREGAR-CLIENTE.
           MOVE WS-CLI-COD TO ECL-COD-CLI
           MOVE 0000 TO ECL-NRO-SEC
           START ESTCLIENTE KEY IS >= ECL-CLAVE
           PERFORM VEO-FS-ECL.

      *********************    VEO FS_ECL     **************************
       VEO-FS-ECL.
           IF  WSS-FS-ESTCLIENTE-OK
               READ ESTCLIENTE NEXT
                   AT END PERFORM SET-EOF
               END-READ
               MOVE 0000 TO WSV-NRO-SEC-ANT
               PERFORM LEER-HASTA-EL-ULTIMO-ECL UNTIL 
                        WSS-FS-ESTCLIENTE-EOF OR
                        ECL-COD-CLI NOT EQUAL WS-CLI-COD
           END-IF.
           IF WSS-FS-ESTCLIENTE EQUAL '23' OR '10'
               PERFORM GRABAR-ECL
               PERFORM GRABAR-TRABAJO-MAE
           ELSE 
              IF ECL-COD-CLI NOT EQUAL WS-CLI-COD
                   MOVE WSV-NRO-SEC-ANT TO ECL-NRO-SEC
                   PERFORM GRABAR-ECL
                   PERFORM GRABAR-TRABAJO-MAE
              ELSE
                   DISPLAY 'ERROR AL LEER ECL'
              END-IF
           END-IF.
        
      ****************   SET-EOF   ************************************* 
       SET-EOF.
           MOVE '10' TO WSS-FS-ESTCLIENTE.

      ****************    LEER HASTA EL ULTIMO ECL     *****************
       LEER-HASTA-EL-ULTIMO-ECL.
           MOVE ECL-NRO-SEC TO WSV-NRO-SEC-ANT
               READ ESTCLIENTE NEXT
                   AT END PERFORM SET-EOF
               END-READ.

      ****************    GRABAR-TRABAJO-ECL    ************************
       GRABAR-TRABAJO-ECL.
           MOVE WS-CLI-NOMBRE TO TRAB-NOMBRE-CLI
           MOVE ECL-NRO-SEC TO TRAB-NRO-SEC
           MOVE WS-CLI-DIRECCION TO TRAB-DIR
           MOVE WS-CLI-TELEFONO TO TRAB-TEL
           MOVE ECL-FECHA-DES TO TRAB-FECHA-DES
           MOVE ECL-FECHA-HAS TO TRAB-FECHA-HAS
           MOVE ECL-CATEG-HAB TO TRAB-CATEG-HAB
           MOVE ECL-IMPORTE TO TRAB-IMP-RES
           RELEASE TRAB.
 
      ****************    GRABAR-TRABAJO-MAE    ************************
       GRABAR-TRABAJO-MAE.
           MOVE WS-CLI-NOMBRE TO TRAB-NOMBRE-CLI
           MOVE ECL-NRO-SEC TO TRAB-NRO-SEC
           MOVE WS-CLI-DIRECCION TO TRAB-DIR
           MOVE WS-CLI-TELEFONO TO TRAB-TEL
           MOVE MAE-FECHA-DES TO TRAB-FECHA-DES
           MOVE MAE-FECHA-HAS TO TRAB-FECHA-HAS
           MOVE MAE-CATEG-HAB TO TRAB-CATEG-HAB
           MOVE MAE-IMP TO TRAB-IMP-RES
           RELEASE TRAB.

      *******************   GRABAR ECL     *****************************
       GRABAR-ECL.
           MOVE WS-CLI-COD TO ECL-COD-CLI
           ADD 1 TO ECL-NRO-SEC
           MOVE MAE-FECHA-DES TO ECL-FECHA-DES
           MOVE MAE-FECHA-HAS TO ECL-FECHA-HAS
           MOVE MAE-CATEG-HAB TO ECL-CATEG-HAB
           MOVE MAE-IMP TO ECL-IMPORTE
           WRITE ECL.
 
      **************************** SALIDA ******************************
        SALIDA.
           OPEN OUTPUT REPORTES.
           PERFORM LEO-TRABAJO.
           PERFORM OBTENER-FECHA.
           MOVE 61 TO WSV-NUM-LINEA.
           MOVE 1 TO WSV-NUM-PAGINA.
           MOVE 0 TO WSV-IMPORTE-TOTAL.
           PERFORM PROCESO-TRABAJO UNTIL WSS-FS-TRABAJO-EOF.
           PERFORM IMPRIMO-IMPORTE-TOTAL.
           CLOSE REPORTES.

      ************************ LEO-TRABAJO *****************************
        LEO-TRABAJO.
           RETURN ARCH-TRABAJO
               AT END SET WSS-FS-TRABAJO-EOF TO TRUE
                   IF WSV-LEIDOS-TRAB EQUAL ZEROES
                       DISPLAY 'ARCHIVO TRABAJO VACIO'
                   END-IF
               NOT AT END
                   ADD 1 TO WSV-LEIDOS-TRAB
           END-RETURN.

      ************************ OBTENER-FECHA ***************************
        OBTENER-FECHA.
           ACCEPT FECHA FROM DATE.
           MOVE ANIO TO ANIO-ACTUAL.
           MOVE MES TO MES-ACTUAL.
           MOVE DIA TO DIA-ACTUAL.

      ********************** PROCESO-TRABAJO ***************************
       PROCESO-TRABAJO.
           MOVE TRAB-NOMBRE-CLI TO WSV-NOMBRE-CLI-ANT.
           PERFORM VEO-FIN-DE-HOJA.
           PERFORM IMPRIMO-ENCABEZADO-CLIENTE.
           PERFORM PROCESO-TRABAJO-UN-CLIENTE UNTIL WSS-FS-TRABAJO-EOF
                        OR WSV-NOMBRE-CLI-ANT NOT EQUAL TRAB-NOMBRE-CLI.
                                        
      ****************** PROCESO-TRABAJO-UN-CLIENTE ********************
       PROCESO-TRABAJO-UN-CLIENTE.
           PERFORM VEO-FIN-DE-HOJA.
           PERFORM    IMPRIMO-LINEA-CLIENTE.
           ADD 1 TO WSV-NUM-LINEA.
           ADD TRAB-IMP-RES TO WSV-IMPORTE-TOTAL.
           PERFORM LEO-TRABAJO.
                
      ************************* VEO-FIN-DE-HOJA ************************    
       VEO-FIN-DE-HOJA.
           IF WSV-NUM-LINEA > 60
               PERFORM IMPRIMO-ENCABEZADO-HOJA
               ADD 1 TO WSV-NUM-PAGINA
               MOVE 03 TO WSV-NUM-LINEA.
            
      ********************** IMPRIMO-ENCABEZADO-HOJA *******************
        IMPRIMO-ENCABEZADO-HOJA.
           MOVE WSV-NUM-PAGINA TO WSV-ENCAB-HOJA-NUM.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-HOJA-LINEA-UNO
                                   AFTER PAGE.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-HOJA-LINEA-DOS.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-HOJA-LINEA-TRES.

      ********************** IMPRIMO-ENCABEZADO-CLIENTE ****************
       IMPRIMO-ENCABEZADO-CLIENTE.
           PERFORM VEO-FIN-DE-HOJA.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-CLI-LINEA-UNO.
           ADD 1 TO WSV-NUM-LINEA.

           MOVE TRAB-NOMBRE-CLI TO WSV-ENCAB-CLI-NOMBRE
           PERFORM VEO-FIN-DE-HOJA.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-CLI-LINEA-DOS.
           ADD 1 TO WSV-NUM-LINEA.

           MOVE TRAB-DIR TO WSV-ENCAB-CLI-DIR
           PERFORM VEO-FIN-DE-HOJA.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-CLI-LINEA-TRES.
           ADD 1 TO WSV-NUM-LINEA.

           MOVE TRAB-TEL TO WSV-ENCAB-CLI-TEL
           PERFORM VEO-FIN-DE-HOJA.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-CLI-LINEA-CUATRO.
           ADD 1 TO WSV-NUM-LINEA.

           PERFORM VEO-FIN-DE-HOJA.
           WRITE REGISTRO-REPORTE FROM WSV-ENCAB-CLI-LINEA-CINCO.
           ADD 1 TO WSV-NUM-LINEA.

      **************************** IMPRIMO-LINEA ***********************
       IMPRIMO-LINEA-CLIENTE.
           MOVE TRAB-FECHA-DES TO WSV-LINEA-CLI-FEC-DES.
           MOVE TRAB-FECHA-HAS TO WSV-LINEA-CLI-FEC-HAS.
           MOVE TRAB-CATEG-HAB TO WSV-LINEA-CLI-CAT-HAB.
           MOVE TRAB-IMP-RES TO WSV-LINEA-CLI-IMP.
           WRITE REGISTRO-REPORTE FROM WSV-LINEA-CLIENTE.

      ************************ IMPRIMO-IMPORTE-TOTAL *******************
       IMPRIMO-IMPORTE-TOTAL.
           PERFORM VEO-FIN-DE-HOJA.
           MOVE WSV-IMPORTE-TOTAL TO WSV-LINEA-IMP.
           WRITE REGISTRO-REPORTE FROM WSV-LINEA-IMPORTE-TOTAL.